CTFshow

您所在的位置:网站首页 ctfshow web区 CTFshow

CTFshow

2023-09-02 13:16| 来源: 网络整理| 查看: 265

文章目录 WEB21WEB22WEB23WEB24WEB25WEB26WEB27WEB28

WEB21

先随意使用一个密码抓包尝试一下

image-20211008202442184

base64解密后发现账号密码的形式为 账号:密码

根据提示我们使用题目所给字典爆破

构造payload,猜测账户名为admin,前半部分不用变,为后半部分迭代即可

image-20211008203916528

导入所给字典

image-20211008203942531

进行base64编码,切记不可为符号再编码,base64可能存在=

image-20211008204041648

attack

拿到flag

image-20211008203703927

或者采用方式二

image-20211008204322660

image-20211008204337063

image-20211008204347606

同样拿下

WEB22

子域名爆破,但是这题爆不出来,直接查看view hint得到flag

WEB23

根据代码编写爆破脚本

一种方法是尝试每一个token值的返回页面,另一种方法爆出token值

方法一

import requests a = "abcdefghijklmnopqrstuvwxyz0123456789" for i in a: for j in a: url ="http://5aad3711-167d-4268-94b4-3bb1a93ae1f0.chall.ctf.show:8080?token="+str(i)+str(j) req = requests.get(url=url).text if "ctf" in req: print(req) exit() else: print(url) #此方法爆破较慢

image-20211011104250252

方法二

import hashlib a = '0123456789abcdefghijklmnopqrstuvwxyz' for i in a: for j in a: t = (str(i)+str(j)).encode('utf-8') md5 = hashlib.md5(t).hexdigest() if md5[1:2] == md5[14:15] == md5[17:18]: if (int(md5[1:2])+int(md5[14:15])+int(md5[17:18]))/int(md5[1:2]) == int(md5[31:32]): print(t)

爆出3j

url后加?token=3j即可

WEB24

看到mt_srand()函数即可知道是伪随机数,每次生成的随机数是一样的

运行脚本

得到1155388967

题目所给代码得知传参为r=

所以在url后加?r=1155388967即可

WEB25

r=0,先出一个随机值

image-20211011111234635

用php_mt_seed反解可能存在的seed值

image-20211013201501885

通过如下代码,我们知道要将两个随机数相加得token值

if($_COOKIE[‘token’]==(mt_rand()+mt_rand()))

脚本挨个尝试seed(在网页头文件中发现是PHP7.3,所以只尝试高版本即可)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3